<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    let str = 'aabbbccdd'

    var s = 'm-ono-ms'

    function fn(str) {
    if (typeof str !== 'string') return // 判断参数是否为字符串

    const obj = new Object() // 键为字母，值为次数

      for (let i = 0; i < str.length; i ++) { // 遍历字符串每一个字母
        let char = str.charAt(i) // 当前字母
        obj[char] = obj[char] || 0 // 保证初始值为0
        obj[char] ++ // 次数加1
      }
      console.log(obj)
      
      let maxChar // 存储字母
      let maxNum = 0 // maxChar字母对应的次数
      for(let key in obj) { // 遍历obj
        if (obj[key] > maxNum) {
                maxChar = key // 比较后存储次数多的字母
                maxNum = obj[key] // 以及它对应的次数
            }
      }
      return maxChar // 返回结果
    }
    fn(str)
  </script>
</body>
</html>